package sf.core;

import sf.database.dialect.DBDialect;
import sf.database.meta.EntityUtils;

import java.io.Serializable;

/**
 * 字段类接口
 * @author sxf
 */
public interface DBField extends Serializable {
    String name();

    /**
     * 返回对应的数据库字段名称
     * @return
     */
    default String columnName() {
        return EntityUtils.getColumnName(this);
    }

    /**
     * 返回对应的数据库字段名称
     * @return
     */
    default String c() {
        return columnName();
    }

    /**
     * 返回对应的数据库字段名称
     * @param dialect
     * @return
     */
    default String c(DBDialect dialect) {
        return EntityUtils.c(this, dialect);
    }
}